package com.example.sample.activity;

import com.example.app.BaseActivity;
import com.example.sample.R;

import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.widget.FrameLayout;
import android.widget.ImageView;

import net.liteheaven.xblib.widget.layout.SimpleFrameLayout;

/**
 * 
 * 本活动为了验证：ViewGroup和FrameLayout的差别
 * @author  LiangYu
 * @data:  2015-1-19 下午4:12:36 
 * @version:  V1.0
 */
public class VGAddLayoutActivity extends BaseActivity {
	
	private SimpleFrameLayout mVg;
	private SimpleFrameLayout mVg2;
	private FrameLayout mLl3;

	protected void onCreate(android.os.Bundle savedInstanceState){
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_vg_add_layout);
		mVg = (SimpleFrameLayout)findViewById(R.id.vg);
		mVg2 = (SimpleFrameLayout)findViewById(R.id.vg2);
		mLl3 = (FrameLayout)findViewById(R.id.ll3);
		
		String infService = Context.LAYOUT_INFLATER_SERVICE;
		LayoutInflater li;
		li = (LayoutInflater)getSystemService(infService);
		
		/**
		 * step 1.
		 * 现象：实现了onLayout之后，显示正常
		 * 结论：ViewGroup直接放在布局中，然后addView，是无法显示的。
		 * 实现了onLayout之后，貌似有点接近Layout了
		 */
		ImageView iv = new ImageView(this);
		iv.setImageResource(R.drawable.ic_launcher);
		mVg.addView(iv);
		
		/**
		 * step 2.
		 * 现象：这里无法显示。
		 * 结论：ViewGroup的onLayout实现了，使用简单遍历的方式，
		 * 但是无法显示出带有子View的View，可能递归调用有点问题
		 * 和LinearLayout还差些代码。
		 */
		li.inflate(R.layout.linearlayout_vg_add_layout, mVg2);
		
		/**
		 * step 3.
		 * 现象：正常
		 * 结论：LinearLayout还是知道如果排列多层子View
		 */
		li.inflate(R.layout.linearlayout_vg_add_layout, mLl3);
	}
}
